#ifndef MUTEX_H_
#define MUTEX_H_
#include <pthread.h>
#include <bits/pthreadtypes.h>

/**
 * @class Mutex
 *
 * @brief Encapsulamiento del comportamiento de un Mutex.
 *
 */
class MutexEncapsulation{

friend class ConditionVariable;

public:
	pthread_mutex_t mutex;
	/**
	 * Inicializa el mutex.
	 */
	MutexEncapsulation();

	/**
	 * Lockea el mutex.
	 */
	void lock();

	/**
	 * Deslockea el mutex.
	 */
	void unlock();

	/**
	 * Destruye el mutex.
	 */
	~MutexEncapsulation();
};

#endif
